package com.sg.dto.biz.component.req;

import com.sg.dto.biz.component.common.GetListIntelligentAnswersDto;
import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @desc AddObjectStorageConfigReqDto
 * @使用场景
 */
@Data
public class AddObjectStorageConfigReqDto
        extends BaseDto
        implements Serializable {

    /**
     * MINIO返回临时上传URL
     */
    @ApiModelProperty("MINIO返回临时上传URL")
    private String minioTemporaryUploadUrl;

    /**
     * 接入点出参
     */
    @NotNull(message = "接入点出参不能为空")
    @ApiModelProperty("接入点出参")
    private String endPoint;

    /**
     * 预览地址出参
     */
    @NotNull(message = "预览地址出参不能为空")
    @ApiModelProperty("预览地址出参")
    private String reviewUrl;

    /**
     * 对象存储桶名
     */
    @NotNull(message = "对象存储桶名不能为空")
    @ApiModelProperty("对象存储桶名")
    private String bucketName;

    /**
     * 阿里云返回临时身份key值
     */
    @ApiModelProperty("阿里云返回临时身份key值")
    private String aliyunTemporaryIdentityKey;

    /**
     * 阿里云返回临时身份sec值
     */
    @ApiModelProperty("阿里云返回临时身份sec值")
    private String aliyunTemporaryIdentitySec;

    /**
     * 阿里云返回临时身份token
     */
    @ApiModelProperty("阿里云返回临时身份token")
    private String aliyunTemporaryIdentityToken;

    /**
     * 阿里云返回上传授权策略
     */
    @ApiModelProperty("阿里云返回上传授权策略")
    private String aliyunUploadAuthorizationPolicy;

    /**
     * 阿里云返回上传签名
     */
    @ApiModelProperty("阿里云返回上传签名")
    private String aliyunUploadSignature;
    @ApiModelProperty("对象存储临时令牌列表 ")
    List<String> objectStorageTemporaryCredentialsList = new ArrayList<>();
    /**
     * 自定义字段
     */
    @NotNull(message = "自定义字段不能为空")
    @ApiModelProperty("自定义字段")
    private String customField;

    /**
     * 自定义字段2
     */
    @ApiModelProperty("自定义字段2")
    private String customField2;
    @ApiModelProperty("获取智能回答列表")
    private List<GetListIntelligentAnswersDto> getListIntelligentAnswersList = new ArrayList<>();

}
